package cn.thornbird.orgsync.service;

import cn.thornbird.orgsync.exception.BadRequestException;
import cn.thornbird.orgsync.exception.ForbiddenException;
import cn.thornbird.orgsync.exception.NotFoundException;
import cn.thornbird.orgsync.model.PageList;
import cn.thornbird.orgsync.model.UserData;
import cn.thornbird.orgsync.model.combined.CompanyObject;
import cn.thornbird.orgsync.vo.record.CompanyRecord;
import cn.thornbird.orgsync.vo.request.CompanyQueryRequest;

public interface CompanyService {

    CompanyObject find(String id) throws NotFoundException;

    PageList<CompanyObject> query(UserData userData, CompanyQueryRequest companyQueryRequest,
                                  Integer pageNumber, Integer pageSize);

    CompanyObject save(UserData userData, CompanyRecord companyRecord)
            throws BadRequestException, ForbiddenException, NotFoundException;

    CompanyObject delete(UserData userData, String id) throws BadRequestException, ForbiddenException, NotFoundException;

}
